Page History: MarketData Snapshot
Compare Page Revisions
Page Revision: 2012/10/11 17:58
Describing MarketsThe T4 FIX API support streaming of market data with the Market Data Snapshot message.
The Market Data messages are used as the response to a Market Data Request message. In all cases, one Market Data message refers only to one Market Data Request. It can be used to transmit a list of quotes, a list of trades, index values, opening, closing, settlement, high, low, the trade volume or open interest for a security, or any combination of these. Market Data messages sent as the result of a Market Data Request message will specify the appropriate MDReqID. Unsolicited Market Data messages can be sent; in such cases, MDReqID will not be present.
Market Data messages can take two forms. The first Market Data message format used for a Snapshot, or a Snapshot + Updates where MDUpdateType = Full Refresh (0) is as follows:
For Market Data Requests where a Bid or Offer is added, changed, or deleted, every update to a Market Data Entry results in a new Market Data message that contains the entirety of the data requested for that instrument, not just the changed Market Data Entry. In other words, both sides of the market, or just one side in the case of a request of only bids or offers, for the depth requested, must be sent in one FIX Market Data message. A Market Data message may contain several trades, an index value, opening, closing, settlement, high, low, as well as the traded volume and open interest but only one instrument per message.
Tag | Field Name | Req'd | Comments |
---|
2 | MDReqID | N | Conditionally required if this message is in response to a Market Data Request. |
269 | MDEntryType | Y | Entry Type. Must be the first field in this repeating group. This is a list of interested Market Data Entries. The permissible values can be: |
| Start Repeating Group | |
268 | NoMDEntries | Y | Number of entries following. |
269 | MDEntryType | Y | Must be the first field in this repeating group. |
270 | MDEntryPx | N | Conditionally required if MDEntryType is not Imbalance(A) ), Trade Volume (B), or Open Interest(C) |
15 | Currency | N | Can be used to specify the currency of the quoted price. |
271 | MDEntrySize | N | Conditionally required if MDEntryType = Bid(0), Offer(1), Trade(2) ), Trade Volume (B), or Open Interest(C) |
272 | MDEntryDate | N | |
273 | MDEntryTime | N | |
274 | TickDirection | N | |
275 | MDMkt | N | Market posting quote / trade. Valid values: |
| End Repeating Group | |
| Standard Trailer | Y |
Message Dictionary
262 MDReqID N Conditionally required if this message is in response to a Market Data Request.
component block
Y Insert here the set of "Instrument" (symbology) fields defined in "COMMON COMPONENTS OF APPLICATION MESSAGES"
711 NoUnderlyings N Number of underlyings
component block N Must be provided if Number of underlyings > 0
555 NoLegs N Required for multileg quotes
component block N Required for multileg quotes
For Swaps one leg is Buy and other leg is Sell
291 FinancialStatus N
292 CorporateAction N
451 NetChgPrevDay N
268 NoMDEntries Y Number of entries following.
269 MDEntryType Y Must be the first field in this repeating group.
270 MDEntryPx N Conditionally required if MDEntryType is not Imbalance(A) ), Trade Volume (B), or Open Interest(C)
15 Currency N Can be used to specify the currency of the quoted price.
271 MDEntrySize N Conditionally required if MDEntryType = Bid(0), Offer(1), Trade(2) ), Trade Volume (B), or Open Interest(C)
272 MDEntryDate N
273 MDEntryTime N
274 TickDirection N
275 MDMkt N Market posting quote / trade. Valid values:
See Volume 6: Appendix 6-C.
336 TradingSessionID N
625 TradingSessionSubID N
276 QuoteCondition N Space-delimited list of conditions describing a quote.
277 TradeCondition N Space-delimited list of conditions describing a trade
282 MDEntryOriginator N
283 LocationID N
284 DeskID N
286 OpenCloseSettlFlag N Used if MDEntryType = Opening Price(4), Closing Price(5), or Settlement Price(6).
59 TimeInForce N For optional use when this Bid or Offer represents an order
432 ExpireDate N For optional use when this Bid or Offer represents an order. ExpireDate and ExpireTime cannot both be specified in one Market Data Entry.
126 ExpireTime N For optional use when this Bid or Offer represents an order. ExpireDate and ExpireTime cannot both be specified in one Market Data Entry.
110 MinQty N For optional use when this Bid or Offer represents an order
18 ExecInst N Can contain multiple instructions, space delimited.
287 SellerDays N
37 OrderID N For optional use when this Bid, Offer, or Trade represents an order
299 QuoteEntryID N For optional use when this Bid, Offer, or Trade represents a quote
288 MDEntryBuyer N For optional use in reporting Trades
289 MDEntrySeller N For optional use in reporting Trades
346 NumberOfOrders N In an Aggregated Book, used to show how many individual orders make up an MDEntry
290 MDEntryPositionNo N Display position of a bid or offer, numbered from most competitive to least competitive, per market side, beginning with 1
546 Scope N
811 PriceDelta N
58 Text N Text to describe the Market Data Entry. Part of repeating group.
354 EncodedTextLen N Must be set if EncodedText field is specified and must immediately precede it.
355 EncodedText N Encoded (non-ASCII characters) representation of the Text field in the encoded format specified via the MessageEncoding field.
813 ApplQueueDepth N Depth of application messages queued for transmission as of delivery of this message
814 ApplQueueResolution N Action taken to resolve application queuing
Standard Trailer Y
Sample Message
Market Data Snapshot of Market with a 1 book level (Top of Book)
<< 10/11/2012 2:58:04 PM [fixmarketdatasnapshot] 34=11479|49=test|56=T4Test|50=T4FIX|52=20121011-19:58:03.971|55=ZT|48=CME_20121200_ZTZ2|207=CME_F|387=4785|268=5|269=0|270=110.203125|271=224|1023=1|269=1|270=110.21875|271=326|1023=1|269=2|270=110.1875|271=1|1023=1|269=3|270=110.21875|271=3|1023=1|269=4|270=110.2109375|271=1|
[FIXMARKETDATASNAPSHOT]
[MsgSeqNum] 34 = 11479
[SenderCompID] 49 = test
[TargetCompID] 56 = T4Test
[SenderSubID] 50 = T4FIX
[SendingTime] 52 = 20121011-19:58:03.971
[Symbol] 55 = ZT
[SecurityID] 48 = CME_20121200_ZTZ2
[SecurityExchange] 207 = CME_F
[TotalVolumeTraded] 387 = 4785
[NoMDEntries] 268 = 5
[MDEntryType] 269 = 0 (BID)
[MDEntryPx] 270 = 110.203125
[MDEntrySize] 271 = 224
[MDPriceLevel] 1023 = 1
[MDEntryType] 269 = 1 (OFFER)
[MDEntryPx] 270 = 110.21875
[MDEntrySize] 271 = 326
[MDPriceLevel] 1023 = 1
[MDEntryType] 269 = 2 (IMPLIED_BID)
[MDEntryPx] 270 = 110.1875
[MDEntrySize] 271 = 1
[MDPriceLevel] 1023 = 1
[MDEntryType] 269 = 3 (IMPLIED_OFFER)
[MDEntryPx] 270 = 110.21875
[MDEntrySize] 271 = 3
[MDPriceLevel] 1023 = 1
[MDEntryType] 269 = 4 (TRADE)
[MDEntryPx] 270 = 110.2109375
[MDEntrySize] 271 = 1
UnSubscribe from a currently streaming market
<< 10/11/2012 2:58:04 PM [fixmarketdatasnapshot] 34=11480|49=test|56=T4Test|50=T4FIX|52=20121011-19:58:04.002|55=ZT|48=CME_20121200_ZTZ2|207=CME_F|268=22|269=6|270=110.21875|269=7|270=110.21875|269=7|270=110|269=B|270=0|271=4785|1023=0|269=B|270=110|271=260|1023=1|269=B|270=110.0078125|271=10|1023=2|269=B|270=110.0234375|271=10|1023=3|269=B|270=110.0390625|271=80|1023=4|269=B|270=110.0546875|271=10|1023=5|269=B|270=110.0703125|271=10|1023=6|269=B|270=110.0859375|271=10|1023=7|269=B|270=110.1015625|271=10|1023=8|269=B|270=110.1171875|271=10|1023=9|269=B|270=110.1328125|271=25|1023=10|269=B|270=110.1484375|271=20|1023=11|269=B|270=110.15625|271=50|1023=12|269=B|270=110.1640625|271=35|1023=13|269=B|270=110.1796875|271=25|1023=14|269=B|270=110.1953125|271=156|1023=15|269=B|270=110.203125|271=21|1023=16|269=B|270=110.2109375|271=4012|1023=17|269=B|270=110.21875|271=31|1023=18|
[FIXMARKETDATASNAPSHOT]
[MsgSeqNum] 34 = 11480
[SenderCompID] 49 = test
[TargetCompID] 56 = T4Test
[SenderSubID] 50 = T4FIX
[SendingTime] 52 = 20121011-19:58:04.002
[Symbol] 55 = ZT
[SecurityID] 48 = CME_20121200_ZTZ2
[SecurityExchange] 207 = CME_F
[NoMDEntries] 268 = 22
[MDEntryType] 269 = 6 (SETTLEMENT_PRICE)
[MDEntryPx] 270 = 110.21875
[MDEntryType] 269 = 7 (TRADING_SESSION_HIGH_PRICE)
[MDEntryPx] 270 = 110.21875
[MDEntryType] 269 = 7 (TRADING_SESSION_HIGH_PRICE)
[MDEntryPx] 270 = 110
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 0
[MDEntrySize] 271 = 4785
[MDPriceLevel] 1023 = 0
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110
[MDEntrySize] 271 = 260
[MDPriceLevel] 1023 = 1
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.0078125
[MDEntrySize] 271 = 10
[MDPriceLevel] 1023 = 2
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.0234375
[MDEntrySize] 271 = 10
[MDPriceLevel] 1023 = 3
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.0390625
[MDEntrySize] 271 = 80
[MDPriceLevel] 1023 = 4
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.0546875
[MDEntrySize] 271 = 10
[MDPriceLevel] 1023 = 5
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.0703125
[MDEntrySize] 271 = 10
[MDPriceLevel] 1023 = 6
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.0859375
[MDEntrySize] 271 = 10
[MDPriceLevel] 1023 = 7
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.1015625
[MDEntrySize] 271 = 10
[MDPriceLevel] 1023 = 8
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.1171875
[MDEntrySize] 271 = 10
[MDPriceLevel] 1023 = 9
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.1328125
[MDEntrySize] 271 = 25
[MDPriceLevel] 1023 = 10
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.1484375
[MDEntrySize] 271 = 20
[MDPriceLevel] 1023 = 11
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.15625
[MDEntrySize] 271 = 50
[MDPriceLevel] 1023 = 12
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.1640625
[MDEntrySize] 271 = 35
[MDPriceLevel] 1023 = 13
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.1796875
[MDEntrySize] 271 = 25
[MDPriceLevel] 1023 = 14
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.1953125
[MDEntrySize] 271 = 156
[MDPriceLevel] 1023 = 15
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.203125
[MDEntrySize] 271 = 21
[MDPriceLevel] 1023 = 16
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.2109375
[MDEntrySize] 271 = 4012
[MDPriceLevel] 1023 = 17
[MDEntryType] 269 = B (TRADE_VOLUME)
[MDEntryPx] 270 = 110.21875
[MDEntrySize] 271 = 31
[MDPriceLevel] 1023 = 18
FIX API Home Page.